home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / lib / python2.5 / lib-tk / tkMessageBox.py < prev    next >
Text File  |  2008-10-05  |  3KB  |  123 lines

  1. # tk common message boxes
  2. #
  3. # this module provides an interface to the native message boxes
  4. # available in Tk 4.2 and newer.
  5. #
  6. # written by Fredrik Lundh, May 1997
  7. #
  8.  
  9. #
  10. # options (all have default values):
  11. #
  12. # - default: which button to make default (one of the reply codes)
  13. #
  14. # - icon: which icon to display (see below)
  15. #
  16. # - message: the message to display
  17. #
  18. # - parent: which window to place the dialog on top of
  19. #
  20. # - title: dialog title
  21. #
  22. # - type: dialog type; that is, which buttons to display (see below)
  23. #
  24.  
  25. from tkCommonDialog import Dialog
  26.  
  27. #
  28. # constants
  29.  
  30. # icons
  31. ERROR = "error"
  32. INFO = "info"
  33. QUESTION = "question"
  34. WARNING = "warning"
  35.  
  36. # types
  37. ABORTRETRYIGNORE = "abortretryignore"
  38. OK = "ok"
  39. OKCANCEL = "okcancel"
  40. RETRYCANCEL = "retrycancel"
  41. YESNO = "yesno"
  42. YESNOCANCEL = "yesnocancel"
  43.  
  44. # replies
  45. ABORT = "abort"
  46. RETRY = "retry"
  47. IGNORE = "ignore"
  48. OK = "ok"
  49. CANCEL = "cancel"
  50. YES = "yes"
  51. NO = "no"
  52.  
  53.  
  54. #
  55. # message dialog class
  56.  
  57. class Message(Dialog):
  58.     "A message box"
  59.  
  60.     command  = "tk_messageBox"
  61.  
  62.  
  63. #
  64. # convenience stuff
  65.  
  66. # Rename _icon and _type options to allow overriding them in options
  67. def _show(title=None, message=None, _icon=None, _type=None, **options):
  68.     if _icon and "icon" not in options:    options["icon"] = _icon
  69.     if _type and "type" not in options:    options["type"] = _type
  70.     if title:   options["title"] = title
  71.     if message: options["message"] = message
  72.     res = Message(**options).show()
  73.     # In some Tcl installations, Tcl converts yes/no into a boolean
  74.     if isinstance(res, bool):
  75.         if res: return YES
  76.         return NO
  77.     return res
  78.  
  79. def showinfo(title=None, message=None, **options):
  80.     "Show an info message"
  81.     return _show(title, message, INFO, OK, **options)
  82.  
  83. def showwarning(title=None, message=None, **options):
  84.     "Show a warning message"
  85.     return _show(title, message, WARNING, OK, **options)
  86.  
  87. def showerror(title=None, message=None, **options):
  88.     "Show an error message"
  89.     return _show(title, message, ERROR, OK, **options)
  90.  
  91. def askquestion(title=None, message=None, **options):
  92.     "Ask a question"
  93.     return _show(title, message, QUESTION, YESNO, **options)
  94.  
  95. def askokcancel(title=None, message=None, **options):
  96.     "Ask if operation should proceed; return true if the answer is ok"
  97.     s = _show(title, message, QUESTION, OKCANCEL, **options)
  98.     return s == OK
  99.  
  100. def askyesno(title=None, message=None, **options):
  101.     "Ask a question; return true if the answer is yes"
  102.     s = _show(title, message, QUESTION, YESNO, **options)
  103.     return s == YES
  104.  
  105. def askretrycancel(title=None, message=None, **options):
  106.     "Ask if operation should be retried; return true if the answer is yes"
  107.     s = _show(title, message, WARNING, RETRYCANCEL, **options)
  108.     return s == RETRY
  109.  
  110.  
  111. # --------------------------------------------------------------------
  112. # test stuff
  113.  
  114. if __name__ == "__main__":
  115.  
  116.     print "info", showinfo("Spam", "Egg Information")
  117.     print "warning", showwarning("Spam", "Egg Warning")
  118.     print "error", showerror("Spam", "Egg Alert")
  119.     print "question", askquestion("Spam", "Question?")
  120.     print "proceed", askokcancel("Spam", "Proceed?")
  121.     print "yes/no", askyesno("Spam", "Got it?")
  122.     print "try again", askretrycancel("Spam", "Try again?")
  123.